package config

type ApiConfig struct {
	Server       `mapstructure:"server" json:"server"`
	Log          `mapstructure:"log" json:"log"`
	Jwt          `mapstructure:"Jwt" json:"Jwt"`
	Consul       `mapstructure:"Consul" json:"Consul"`
	ConsulServer `mapstructure:"consulServer" json:"consulServer"`
	AliPay       `mapstructure:"AliPay" json:"aliPay"`
}

type Server struct {
	Host    string   `mapstructure:"host" json:"host"`
	Port    int      `mapstructure:"port" json:"port"`
	Name    string   `mapstructure:"name" json:"name"`
	Tags    []string `mapstructure:"tags" json:"tags"`
	RpcName string   `mapstructure:"rpcName" json:"rpcName"`
	RpcHost string   `mapstructure:"rpcHost" json:"rpcHost"`
	RpcPort int      `mapstructure:"rpcPort" json:"rpcPort"`
}

type Log struct {
	LogPath string `mapstructure:"logPath" json:"logPath"`
}

type Jwt struct {
	Secret      string `mapstructure:"secretKey" json:"secretKey"`
	ExpiresTime int64  `mapstructure:"expireTime" json:"expireTime"`
}

type Consul struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type ConsulServer struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type Nacos struct {
	NamespaceId string `mapstructure:"namespaceId" json:"namespaceId"`
	IpAddr      string `mapstructure:"IpAddr"`
	Port        int    `mapstructure:"port"`
	UserName    string `mapstructure:"userName"`
	Password    string `mapstructure:"password"`
	DataId      string `mapstructure:"dataId"`
	Group       string `mapstructure:"group"`
}

type AliPay struct {
	KAppId      string `mapstructure:"kAppId" json:"kAppId"`
	KPrivateKey string `mapstructure:"kPrivateKey" json:"kPrivateKey"`
	KPublicKey  string `mapstructure:"kPublicKey" json:"kPublicKey"`
	NotifyUrl   string `mapstructure:"notifyUrl" json:"notifyUrl"`
}
